package com.it.myh;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;

/**
 * @Description: // 类说明，在创建类时要填写
 * @ClassName: Ev_0422_06    // 类名，会自动填充
 * @Author: MYH          // 创建者
 * @Date: 2023/4/22 20:24   // 时间
 * @Version: 1.0     // 版本
 */
public class Ev_0422_06 {

    public static void main(String[] args) {
        //reduce(T iden, BinaryOperator b)可以将流中元素反复结合起来，得到一个值。返回T
        //计算1-10的自然数的和
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        Integer reduce = list.stream().reduce(1000, (i1, i2) -> Integer.sum(i1, i2));
        System.out.println(reduce);
        //reduce(BinaryOperator b)可以将流中元素反复结合起来，得到一个值。返回Optional< T >
        //计算公司所有员工工资的总和
        List<Employee> employees = Employee.getEmployees();
        Optional<Double> reduce1 = employees.stream().map(e -> e.getSalary()).reduce((d1, d2) -> Double.sum(d1, d2));
        System.out.println(reduce1);
    }
}
